_CLEAR87

#include <float.h>
            
unsigned int _clear87();  получает  и  очищает слово статуса  плавающей точки

Описание.
Функция _clear87 получает и стирает слово статуса плавающей точки. Слово статуса плавающей точки является комбинацией слова статуса 8087/80287 и других состояний, обнаруживаемых 8087/80287 handler-ом, таких как переполнение и потеря значимости стека плавающей точки.

Возвращаемое значение.
Биты в возвращаемом значении обозначают статус плавающей точки. Смотрите include-файл <float.h> для полного описания битов, возвращаемых функцией _clear87.

Замечание.
Большинство из математических библиотечных функций модифицирует слово статуса 8087/80287 с непредсказуемым результатом. Возвращаемые значения функций _clear87 и _status87 становятся более достоверными после выполнения нескольких операций с плавающей точкой с известными состояниями слова статуса плавающей точки.

Пример:

            
#include <stdio.h>
#include <float.h>
            
double a = 1e-40,b;
float x,y;
            
main()
{
              printf("status=%.4x - clear\n",_clear87());
              y = a;
                
               /* запомненное в y является неточным и с потерянной  значи-
         мостью */
              printf("status=%.4xx - inexact, underflow\n", _clear87());
              b = y;    /* y является неправильным */
              printf("status=%.4x - denormal\n", _clear87());
}

Hosted by uCoz